//package org.wlgzs.shop.utils.file;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.stereotype.Service;
//import org.springframework.web.servlet.ModelAndView;
//
//import javax.servlet.ServletContext;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.OutputStream;
//import java.net.URLEncoder;
//
///**
// * @Author: Ben
// * @Date: 2019/5/25 17:02
// * @Project org.wlgzs.shop
// */
//@Service
//public class FileDownloadUtils {
//
//    private static final Logger logger = LoggerFactory.getLogger(FileDownloadUtils.class);
//
//    public static ModelAndView downloadFileService(HttpServletRequest request, HttpServletResponse response, ModelAndView modelAndView) {
//        logger.info("1");
//        // 得到要下载的文件名
//        String fileName = request.getParameter("filename");
//        logger.info("2");
//        try {
//            fileName = new String(fileName.getBytes("iso8859-1"), "UTF-8");
//            logger.info("3");
//            // 获取上传文件的目录
//            ServletContext sc = request.getSession().getServletContext();
//            logger.info("4");
//            // 上传位置
//            String fileSaveRootPath = sc.getRealPath("/img");
//
//            logger.info(fileSaveRootPath + "\\" + fileName);
//            // 得到要下载的文件
//            File file = new File(fileSaveRootPath + "\\" + fileName);
//
//            // 如果文件不存在
//            if (!file.exists()) {
//                modelAndView.addObject("message", "您要下载的资源已被删除！！");
//                logger.error("您要下载的资源已被删除！！");
//                return modelAndView;
//            }
//            // 处理文件名
//            String realname = fileName.substring(fileName.indexOf("_") + 1);
//            // 设置响应头，控制浏览器下载该文件
//            response.setHeader("content-disposition", "attachment;filename="
//                    + URLEncoder.encode(realname, "UTF-8"));
//            // 读取要下载的文件，保存到文件输入流
//            FileInputStream fileInputStream = new FileInputStream(fileSaveRootPath + "\\" + fileName);
//            // 创建输出流
//            OutputStream outputStream = response.getOutputStream();
//            // 创建缓冲区
//            byte buffer[] = new byte[1024];
//            int len = 0;
//            // 循环将输入流中的内容读取到缓冲区当中
//            while ((len = fileInputStream.read(buffer)) > 0) {
//                // 输出缓冲区的内容到浏览器，实现文件下载
//                outputStream.write(buffer, 0, len);
//            }
//            // 关闭文件输入流
//            fileInputStream.close();
//            // 关闭输出流
//            outputStream.close();
//            logger.info("文件下载完成");
//            modelAndView.addObject("success","文件下载完成");
//            return modelAndView;
//        } catch (Exception e) {
//            modelAndView.addObject("error","文件处理异常");
//           return modelAndView;
//        }
//    }
//}
//
//
//
